In order for a computer or other microprocessor-based system to be in an operational state capable of executing multiple application programs (i.e., those programs that give the system specific functionality), the system must be under the supervisory control of operating system (OS) software. This operational state involves particular code and data being stored in memory that enable the OS to maintain supervisory control over how the system resources are allocated to the various application processes. The usual means by which the operational state is reached is through a boot sequence, in which the processor (CPU) first begins executing (e.g., upon powering up from a powered down condition) at a specific location in a nonvolatile read-only memory (ROM). That is, the program counter of the CPU (or instruction pointer in Intel x86 architectures) is initially loaded with the starting address of the BIOS (basic input/output system) software in the ROM. The BIOS code contained in the ROM defines the basic steps taken by the system when it starts, including hardware detection and initialization and loading of the operating system by a bootstrap loader. Execution of the bootstrap loader causes the boot record of the storage medium containing the operating system software (e.g., a hard disk, floppy, or CD-ROM) to be read into system memory, which is usually volatile dynamic random access memory (DRAM). The boot record contains a boot program which is then executed to begin the process of loading the operating system into memory from the storage medium.
The process of booting the device is time-consuming because the operating system must perform certain computations to configure itself for the particular device, including hardware detection/initialization, initialization of OS services, initialization of a graphical windowing system, and the building of various data structures. Applications being run on the computing device require the use of a specific operating system. There are different operating systems that can be installed in a computing device. If an application executed by the device requires the use of a different operating system, then the initial operating system is shut down and the other operating system is booted into the device. The shut down of the initial operating system and booting of the subsequent operating system takes a substantial period of time. Moreover, if the initial operating system is the predominantly used operating system, then the device uses another substantial amount of time to switch back to the initial operating system. Accordingly, there is need to quickly boot a variety of operating systems in a computing device such as a medical device or medical device programmer.